package com.example.demo.day0227;

import java.util.ArrayList;
import java.util.List;

public class DemoGenericMethod {
    public <T> void test(T s){//定义一个没有返回值的泛型方法
        T t=s;
    }

    public <T> T tes1(T s){//定义一个有返回值的泛型方法
        return s;
    }

    public <T> void test2(T... strs){//定义一个无返回值,形参为可变参数的方法
        for (T s : strs){
            System.out.println(s);
        }
    }

    public static void main(String[] args) {
        DemoGenericMethod demoGenericMethod =new DemoGenericMethod();
        String str1="";String str2="";String str3="";
        demoGenericMethod.test2( str1, str2, str3);
        List<String>  sts=new ArrayList<String>();
        sts.add(str1);
        demoGenericMethod.test2(sts);
    }
}
class DemoGenericMethod1<E>{//在类上定义的泛型可以在普通的方法中实现
    private E e;
    public static <E> E test3(E t){//如果要使用泛型，只能使用静态方法自己定义的泛型
        System.out.println(t);
//        System.out.println(this.e);//在静态方法中不能使用类定义的泛型
        return t;
    }
    public <T> void test4(T s){
        System.out.println(this.e);
        T t=s;
    }
    DemoGenericMethod1(E t){
        e=t;
    }
    DemoGenericMethod1(){
    }
}
